Integrated circuits (ICs) have become more complex in their operation and the overall functionality associated therewith to allow the IC to function in more than one application. In order to increase the versatility of an integrated circuit even for a single application, a manufacturer will typically provide a large amount of flexibility of the functionality on-chip. By setting certain parameters in various configuration registers, the nature of the chip and the operating parameters thereof can be altered for a given application. Thus, when an integrated circuit is designed into an application, there will be some type of configuration information loaded onto the chip. In some situations, there can be on-board non-volatile memory such as EEPROM that can be semi-permanently programmed, such that, upon power-up, the chip will load its configuration information into active memory. Alternatively, an external memory can be provided for containing configuration information which can then be uploaded to the IC. In some situations, there is insufficient non-volatile memory on-chip for this purpose and, as such, the configuration registers must be loaded from external memory. This, of course, requires an external memory.
Another technique for configuring the operation of an integrated circuit is to provide external program pins. By connecting a pin to either a positive voltage or to ground, two states of programmability can be provided for each pin. However, as one would anticipate, this requires a large number of pins for a large number of configuration possibilities. There have been a number techniques provided for programming a dedicated pin to establish multiple states. One such techniques is connecting the pin to a positive voltage, to a negative voltage or maintained in an open circuit state to provide the programmability, with the connections to the positive and negative voltage being through a resistor or hard connected. However, the number of program states for each pin is limited.